Software Architecture ​
- An architecture style describe the macro structure of a system.
- Architecture patterns describe reusable structural building block patterns that can be used within each of the architecture styles to solve a particular problem.
- Architecture patterns, in turn, differ from design patterns (such as the Builder design pattern) in that an architecture pattern impacts the structural aspect of a system, whereas a design pattern impacts how the source code is designed

Classification ​
Architecture styles are classified as belonging to one of two main architectural structures:
- Monolithic Architecture (single deployment unit)
- Distributed Architecture (multiple deployment units, usually consisting of services)
Besides Monolithic and Distributed, architectures can be classified on the basis of the overall system's partitioning: